package xcu.lxj.nettychat.user.service.inter;


import io.netty.channel.Channel;
import xcu.lxj.nettychat.chat.domain.vo.response.WSBaseResp;

/**
 * @Author XinJian Lei
 * @Date 2024/9/27 16:28
 * @Version 1.0
 */
public interface WebSocketService {

    /**
     * 验证 token 对通道进行处理
     *
     * @param channel
     * @param token
     * @return
     */
    boolean authorize(Channel channel, String token);

    /**
     * 处理ws断开连接的事件
     *
     * @param channel
     */
    void removed(Channel channel);

    /**
     * 给对应的好友发送 消息
     * @param wsBaseResp ws基础响应体
     * @param uid  发送的uid
     */
    void sendToUid(WSBaseResp<?> wsBaseResp, Long uid);

    /**
     * 全部人发送 消息
     * @param wsBaseResp
     */
    public void sendToAllOnline(WSBaseResp<?> wsBaseResp);

    /**
     *  发送给全部在线的用户
     * @param wsBaseResp
     * @param skipUid
     */
    void sendToAllOnline(WSBaseResp<?> wsBaseResp, Long skipUid);
}
